gdk: Fix wrong usage of g_task_propagate_pointer()
authorBenjamin Otte <otte@redhat.com>
Sun, 10 Dec 2017 00:04:32 +0000 (01:04 +0100)
committerBenjamin Otte <otte@redhat.com>
Sun, 10 Dec 2017 00:09:14 +0000 (01:09 +0100)
The return value is transfer full, not transfer none.

gdk/wayland/gdkclipboard-wayland.c
gdk/x11/gdkclipboard-x11.c

index 30ada30f87e7436880c9179787d0f246c12aa869..63c1f756a93d89709dab8271a28dfe4616055e7e 100644 (file)
@@ -251,28 +251,16 @@ gdk_wayland_clipboard_read_finish (GdkClipboard  *clipboard,
                                    GAsyncResult  *result,
                                    GError       **error)
 {
-  GInputStream *stream;
   GTask *task;
 
   g_return_val_if_fail (g_task_is_valid (result, G_OBJECT (clipboard)), NULL);
   task = G_TASK (result);
   g_return_val_if_fail (g_task_get_source_tag (task) == gdk_wayland_clipboard_read_async, NULL);
 
-  stream = g_task_propagate_pointer (task, error);
-
-  if (stream)
-    {
-      if (out_mime_type)
-        *out_mime_type = g_task_get_task_data (task);
-      g_object_ref (stream);
-    }
-  else
-    {
-      if (out_mime_type)
-        *out_mime_type = NULL;
-    }
+  if (out_mime_type)
+    *out_mime_type = g_task_get_task_data (task);
 
-  return stream;
+  return g_task_propagate_pointer (task, error);
 }
 
 static void
index 4864c1f8bba925584fb1b2fa7f924e850105850a..f6d7b8cc63f96fbfd5d03886089f6cd20be480fd 100644 (file)
@@ -1062,33 +1062,21 @@ gdk_x11_clipboard_read_finish (GdkClipboard  *clipboard,
                                GAsyncResult  *result,
                                GError       **error)
 {
-  GInputStream *stream;
   GTask *task;
 
   g_return_val_if_fail (g_task_is_valid (result, G_OBJECT (clipboard)), NULL);
   task = G_TASK (result);
   g_return_val_if_fail (g_task_get_source_tag (task) == gdk_x11_clipboard_read_async, NULL);
 
-  stream = g_task_propagate_pointer (task, error);
-
-  if (stream)
+  if (out_mime_type)
     {
-      if (out_mime_type)
-        {
-          GSList *targets;
+      GSList *targets;
 
-          targets = g_task_get_task_data (task);
-          *out_mime_type = targets->data;
-        }
-      g_object_ref (stream);
-    }
-  else
-    {
-      if (out_mime_type)
-        *out_mime_type = NULL;
+      targets = g_task_get_task_data (task);
+      *out_mime_type = targets ? targets->data : NULL;
     }
 
-  return stream;
+  return g_task_propagate_pointer (task, error);
 }
 
 static void